1. Field of the Invention
The invention is useful in the field of data processing, and in particular to a computer programming language which is generally and inherently concurrent and distributed, thereby enabling concurrent distributed processing systems.
2. Discussion of Background Information
By way of introduction, a computer program can be viewed as a series of instructions given to a computer. A computer program language is similar to the English language in that both use symbols to represent things and actions. For example, an English language cooking recipe uses strings of letters to form words that represent ingredients, such as “eggs” and “flour.” The English language also assembles strings of letters, spaces, and grammatical symbols to represent actions, such as, “add two eggs to one cup of flour, and bake for 30 minutes.” Computer programs similarly use sequences of symbols to represent things and actions. Computer programming languages differ from one another, among other ways, in their symbols and syntactical structures, similar to the way the English language differs from Chinese or Arabic in the choice of symbols and grammatical constructs.
A computer program can also be viewed as a symbolic representation of a process, where a process can be any progression of actions, changes, or functions that bring about an end or result. The result may be outside the computer that executes the program. For example, the process may be the manufacture of an item, communication of information to a distant location, or control of a vehicle, in addition to being the internal retrieval of data from a disc drive, the addition of two numbers in an arithmetic logic unit, or illumination of a computer display.
A programming language should be structured to facilitate the representation of processes generally, rather than being structured merely to represent processes available within a computer. A preliminary discussion of processes will assist in the appreciation of the invocation language discussed below.
Processes can be described generally and specifically. For example, “addition” can be described generally as the act or process of adding. It can be defined specifically by a series of rules, such as:1+0=11+1=21+2=3
etc.
The act of addition can be performed in a specific instance for a particular set inputs. For example, in an overall process of balancing a savings account, a specific instance of addition could be performed after depositing a check using the specific check amount and the specific account balance at the time of deposit. Another specific instance of addition could occur at a later time when interest is credited to the account.
Stated more generally, the expression of a process is a specific performance of the process. In the account balance example, the addition process was expressed a first time when depositing a check, and it was expressed again when crediting interest.